package cn.iocoder.boot.springai001.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * Session存储配置属性
 * <p>
 * 绑定 application.properties 中的 session.storage 配置
 * <p>
 * 配置示例：
 * <pre>
 * # 内存存储（默认）
 * session.storage.type=memory
 *
 * # 数据库存储
 * session.storage.type=database
 * </pre>
 */
@Data
@Component
@ConfigurationProperties(prefix = "session.storage")
public class SessionStorageProperties {

    /**
     * Session存储类型
     * <ul>
     * <li>memory - 内存存储（默认，适合开发环境）</li>
     * <li>database - 数据库存储（推荐生产环境）</li>
     * </ul>
     */
    private String type = "memory";

    /**
     * 验证配置是否有效
     */
    public boolean isValid() {
        return "memory".equals(type) || "database".equals(type);
    }

    /**
     * 是否使用内存存储
     */
    public boolean isMemoryStorage() {
        return "memory".equals(type);
    }

    /**
     * 是否使用数据库存储
     */
    public boolean isDatabaseStorage() {
        return "database".equals(type);
    }
}

